module{
    isq.declare_qop @__isq__builtin__measure : [1]()->i1
    isq.declare_qop @__isq__builtin__reset : [1]()->()
    isq.declare_qop @__isq__builtin__bp : [0](index)->()
    isq.declare_qop @__isq__builtin__print_int : [0](index)->()
    isq.declare_qop @__isq__builtin__print_double : [0](f64)->()
    isq.declare_qop @__isq__qmpiprim__me : [0]()->index
    isq.declare_qop @__isq__qmpiprim__size : [0]()->index
    isq.declare_qop @__isq__qmpiprim__epr : [1](index)->()
    isq.declare_qop @__isq__qmpiprim__csend : [0](i1, index)->()
    isq.declare_qop @__isq__qmpiprim__crecv : [0](index)->i1
    func.func @"grover_3.grover_mve"() 
    {
    ^entry:
        %ssa_21 = arith.constant 0 : i1 loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":2:1)
        %ssa_22_real = memref.alloc() : memref<1xi1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":2:1)
        %ssa_22_zero = arith.constant 0 : index
        %ssa_22 = memref.subview %ssa_22_real[%ssa_22_zero][1][1] : memref<1xi1> to memref<1xi1, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":2:1)
        %ssa_21_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":2:1)
        affine.store %ssa_21, %ssa_22[%ssa_21_store_zero] : memref<1xi1, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":2:1)
        %ssa_23 = memref.alloc() : memref<10x!isq.qstate> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":3:5)
        %ssa_24 = memref.alloc() : memref<3x!isq.qstate> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":4:5)
        %ssa_25 = arith.constant 0 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:14)
        %ssa_26 = arith.constant 10 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:16)
        affine.for %ssa_29 = %ssa_25 to %ssa_26 step 1 {
            scf.execute_region {
            ^entry:
                %ssa_30 = arith.constant 0 : i1 loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:5)
                %ssa_31_real = memref.alloc() : memref<1xi1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:5)
                %ssa_31_zero = arith.constant 0 : index
                %ssa_31 = memref.subview %ssa_31_real[%ssa_31_zero][1][1] : memref<1xi1> to memref<1xi1, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:5)
                %ssa_30_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:5)
                affine.store %ssa_30, %ssa_31[%ssa_30_store_zero] : memref<1xi1, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:5)
                %ssa_32 = arith.constant 0 : i1 loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:18)
                %ssa_33_real = memref.alloc() : memref<1xi1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:18)
                %ssa_33_zero = arith.constant 0 : index
                %ssa_33 = memref.subview %ssa_33_real[%ssa_33_zero][1][1] : memref<1xi1> to memref<1xi1, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:18)
                %ssa_32_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:18)
                affine.store %ssa_32, %ssa_33[%ssa_32_store_zero] : memref<1xi1, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:18)
                scf.execute_region {
                ^entry:
                    %ssa_37 = arith.constant 0 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:16)
                    %ssa_38 = memref.subview %ssa_24[%ssa_37][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:15)
                    %ssa_35 = isq.use @"std.H" : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:9) 
                    %ssa_35_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:9)
                    %ssa_35_in_1 = affine.load %ssa_38[%ssa_35_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:9)
                    %ssa_35_out_1 = isq.apply %ssa_35(%ssa_35_in_1) : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:9)
                    %ssa_35_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:9)
                    affine.store %ssa_35_out_1, %ssa_38[%ssa_35_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:9)
                    %ssa_42 = arith.constant 1 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:28)
                    %ssa_43 = memref.subview %ssa_24[%ssa_42][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:27)
                    %ssa_40 = isq.use @"std.H" : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:21) 
                    %ssa_40_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:21)
                    %ssa_40_in_1 = affine.load %ssa_43[%ssa_40_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:21)
                    %ssa_40_out_1 = isq.apply %ssa_40(%ssa_40_in_1) : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:21)
                    %ssa_40_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:21)
                    affine.store %ssa_40_out_1, %ssa_43[%ssa_40_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:21)
                    %ssa_47 = arith.constant 2 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:40)
                    %ssa_48 = memref.subview %ssa_24[%ssa_47][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:39)
                    %ssa_45 = isq.use @"std.H" : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:33) 
                    %ssa_45_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:33)
                    %ssa_45_in_1 = affine.load %ssa_48[%ssa_45_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:33)
                    %ssa_45_out_1 = isq.apply %ssa_45(%ssa_45_in_1) : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:33)
                    %ssa_45_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:33)
                    affine.store %ssa_45_out_1, %ssa_48[%ssa_45_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":6:33)
                    %ssa_52 = arith.constant 0 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":7:17)
                    %ssa_53 = memref.subview %ssa_24[%ssa_52][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":7:16)
                    %ssa_55 = arith.constant 2 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":7:26)
                    %ssa_56 = memref.subview %ssa_24[%ssa_55][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":7:25)
                    %ssa_50 = isq.use @"std.CZ" : !isq.gate<2> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":7:9) 
                    %ssa_50_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":7:9)
                    %ssa_50_in_1 = affine.load %ssa_53[%ssa_50_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":7:9)
                    %ssa_50_in_2_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":7:9)
                    %ssa_50_in_2 = affine.load %ssa_56[%ssa_50_in_2_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":7:9)
                    %ssa_50_out_1, %ssa_50_out_2 = isq.apply %ssa_50(%ssa_50_in_1, %ssa_50_in_2) : !isq.gate<2> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":7:9)
                    %ssa_50_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":7:9)
                    affine.store %ssa_50_out_1, %ssa_53[%ssa_50_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":7:9)
                    %ssa_50_out_2_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":7:9)
                    affine.store %ssa_50_out_2, %ssa_56[%ssa_50_out_2_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":7:9)
                    %ssa_60 = arith.constant 0 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":8:17)
                    %ssa_61 = memref.subview %ssa_24[%ssa_60][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":8:16)
                    %ssa_63 = arith.constant 1 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":8:26)
                    %ssa_64 = memref.subview %ssa_24[%ssa_63][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":8:25)
                    %ssa_58 = isq.use @"std.CZ" : !isq.gate<2> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":8:9) 
                    %ssa_58_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":8:9)
                    %ssa_58_in_1 = affine.load %ssa_61[%ssa_58_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":8:9)
                    %ssa_58_in_2_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":8:9)
                    %ssa_58_in_2 = affine.load %ssa_64[%ssa_58_in_2_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":8:9)
                    %ssa_58_out_1, %ssa_58_out_2 = isq.apply %ssa_58(%ssa_58_in_1, %ssa_58_in_2) : !isq.gate<2> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":8:9)
                    %ssa_58_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":8:9)
                    affine.store %ssa_58_out_1, %ssa_61[%ssa_58_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":8:9)
                    %ssa_58_out_2_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":8:9)
                    affine.store %ssa_58_out_2, %ssa_64[%ssa_58_out_2_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":8:9)
                    %ssa_68 = arith.constant 0 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:16)
                    %ssa_69 = memref.subview %ssa_24[%ssa_68][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:15)
                    %ssa_66 = isq.use @"std.H" : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:9) 
                    %ssa_66_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:9)
                    %ssa_66_in_1 = affine.load %ssa_69[%ssa_66_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:9)
                    %ssa_66_out_1 = isq.apply %ssa_66(%ssa_66_in_1) : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:9)
                    %ssa_66_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:9)
                    affine.store %ssa_66_out_1, %ssa_69[%ssa_66_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:9)
                    %ssa_73 = arith.constant 1 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:28)
                    %ssa_74 = memref.subview %ssa_24[%ssa_73][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:27)
                    %ssa_71 = isq.use @"std.H" : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:21) 
                    %ssa_71_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:21)
                    %ssa_71_in_1 = affine.load %ssa_74[%ssa_71_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:21)
                    %ssa_71_out_1 = isq.apply %ssa_71(%ssa_71_in_1) : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:21)
                    %ssa_71_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:21)
                    affine.store %ssa_71_out_1, %ssa_74[%ssa_71_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:21)
                    %ssa_78 = arith.constant 2 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:40)
                    %ssa_79 = memref.subview %ssa_24[%ssa_78][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:39)
                    %ssa_76 = isq.use @"std.H" : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:33) 
                    %ssa_76_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:33)
                    %ssa_76_in_1 = affine.load %ssa_79[%ssa_76_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:33)
                    %ssa_76_out_1 = isq.apply %ssa_76(%ssa_76_in_1) : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:33)
                    %ssa_76_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:33)
                    affine.store %ssa_76_out_1, %ssa_79[%ssa_76_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":9:33)
                    %ssa_83 = arith.constant 0 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:16)
                    %ssa_84 = memref.subview %ssa_24[%ssa_83][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:15)
                    %ssa_81 = isq.use @"std.X" : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:9) 
                    %ssa_81_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:9)
                    %ssa_81_in_1 = affine.load %ssa_84[%ssa_81_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:9)
                    %ssa_81_out_1 = isq.apply %ssa_81(%ssa_81_in_1) : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:9)
                    %ssa_81_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:9)
                    affine.store %ssa_81_out_1, %ssa_84[%ssa_81_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:9)
                    %ssa_88 = arith.constant 1 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:28)
                    %ssa_89 = memref.subview %ssa_24[%ssa_88][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:27)
                    %ssa_86 = isq.use @"std.X" : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:21) 
                    %ssa_86_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:21)
                    %ssa_86_in_1 = affine.load %ssa_89[%ssa_86_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:21)
                    %ssa_86_out_1 = isq.apply %ssa_86(%ssa_86_in_1) : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:21)
                    %ssa_86_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:21)
                    affine.store %ssa_86_out_1, %ssa_89[%ssa_86_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:21)
                    %ssa_93 = arith.constant 2 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:40)
                    %ssa_94 = memref.subview %ssa_24[%ssa_93][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:39)
                    %ssa_91 = isq.use @"std.X" : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:33) 
                    %ssa_91_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:33)
                    %ssa_91_in_1 = affine.load %ssa_94[%ssa_91_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:33)
                    %ssa_91_out_1 = isq.apply %ssa_91(%ssa_91_in_1) : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:33)
                    %ssa_91_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:33)
                    affine.store %ssa_91_out_1, %ssa_94[%ssa_91_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":10:33)
                    %ssa_98 = arith.constant 2 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":11:22)
                    %ssa_99 = memref.subview %ssa_24[%ssa_98][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":11:21)
                    %ssa_101 = arith.constant 1 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":11:31)
                    %ssa_102 = memref.subview %ssa_24[%ssa_101][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":11:30)
                    %ssa_105 = memref.subview %ssa_23[%ssa_29][1][1] : memref<10x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":11:42)
                    %ssa_96 = isq.use @"std.Toffoli" : !isq.gate<3> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":11:9) 
                    %ssa_96_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":11:9)
                    %ssa_96_in_1 = affine.load %ssa_99[%ssa_96_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":11:9)
                    %ssa_96_in_2_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":11:9)
                    %ssa_96_in_2 = affine.load %ssa_102[%ssa_96_in_2_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":11:9)
                    %ssa_96_in_3_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":11:9)
                    %ssa_96_in_3 = affine.load %ssa_105[%ssa_96_in_3_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":11:9)
                    %ssa_96_out_1, %ssa_96_out_2, %ssa_96_out_3 = isq.apply %ssa_96(%ssa_96_in_1, %ssa_96_in_2, %ssa_96_in_3) : !isq.gate<3> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":11:9)
                    %ssa_96_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":11:9)
                    affine.store %ssa_96_out_1, %ssa_99[%ssa_96_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":11:9)
                    %ssa_96_out_2_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":11:9)
                    affine.store %ssa_96_out_2, %ssa_102[%ssa_96_out_2_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":11:9)
                    %ssa_96_out_3_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":11:9)
                    affine.store %ssa_96_out_3, %ssa_105[%ssa_96_out_3_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":11:9)
                    %ssa_110 = memref.subview %ssa_23[%ssa_29][1][1] : memref<10x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":12:21)
                    %ssa_112 = arith.constant 0 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":12:31)
                    %ssa_113 = memref.subview %ssa_24[%ssa_112][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":12:30)
                    %ssa_107 = isq.use @"std.CNOT" : !isq.gate<2> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":12:9) 
                    %ssa_107_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":12:9)
                    %ssa_107_in_1 = affine.load %ssa_110[%ssa_107_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":12:9)
                    %ssa_107_in_2_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":12:9)
                    %ssa_107_in_2 = affine.load %ssa_113[%ssa_107_in_2_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":12:9)
                    %ssa_107_out_1, %ssa_107_out_2 = isq.apply %ssa_107(%ssa_107_in_1, %ssa_107_in_2) : !isq.gate<2> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":12:9)
                    %ssa_107_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":12:9)
                    affine.store %ssa_107_out_1, %ssa_110[%ssa_107_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":12:9)
                    %ssa_107_out_2_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":12:9)
                    affine.store %ssa_107_out_2, %ssa_113[%ssa_107_out_2_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":12:9)
                    %ssa_117 = arith.constant 2 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":13:22)
                    %ssa_118 = memref.subview %ssa_24[%ssa_117][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":13:21)
                    %ssa_120 = arith.constant 1 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":13:31)
                    %ssa_121 = memref.subview %ssa_24[%ssa_120][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":13:30)
                    %ssa_124 = memref.subview %ssa_23[%ssa_29][1][1] : memref<10x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":13:42)
                    %ssa_115 = isq.use @"std.Toffoli" : !isq.gate<3> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":13:9) 
                    %ssa_115_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":13:9)
                    %ssa_115_in_1 = affine.load %ssa_118[%ssa_115_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":13:9)
                    %ssa_115_in_2_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":13:9)
                    %ssa_115_in_2 = affine.load %ssa_121[%ssa_115_in_2_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":13:9)
                    %ssa_115_in_3_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":13:9)
                    %ssa_115_in_3 = affine.load %ssa_124[%ssa_115_in_3_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":13:9)
                    %ssa_115_out_1, %ssa_115_out_2, %ssa_115_out_3 = isq.apply %ssa_115(%ssa_115_in_1, %ssa_115_in_2, %ssa_115_in_3) : !isq.gate<3> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":13:9)
                    %ssa_115_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":13:9)
                    affine.store %ssa_115_out_1, %ssa_118[%ssa_115_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":13:9)
                    %ssa_115_out_2_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":13:9)
                    affine.store %ssa_115_out_2, %ssa_121[%ssa_115_out_2_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":13:9)
                    %ssa_115_out_3_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":13:9)
                    affine.store %ssa_115_out_3, %ssa_124[%ssa_115_out_3_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":13:9)
                    %ssa_128 = arith.constant 0 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:16)
                    %ssa_129 = memref.subview %ssa_24[%ssa_128][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:15)
                    %ssa_126 = isq.use @"std.X" : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:9) 
                    %ssa_126_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:9)
                    %ssa_126_in_1 = affine.load %ssa_129[%ssa_126_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:9)
                    %ssa_126_out_1 = isq.apply %ssa_126(%ssa_126_in_1) : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:9)
                    %ssa_126_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:9)
                    affine.store %ssa_126_out_1, %ssa_129[%ssa_126_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:9)
                    %ssa_133 = arith.constant 1 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:28)
                    %ssa_134 = memref.subview %ssa_24[%ssa_133][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:27)
                    %ssa_131 = isq.use @"std.X" : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:21) 
                    %ssa_131_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:21)
                    %ssa_131_in_1 = affine.load %ssa_134[%ssa_131_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:21)
                    %ssa_131_out_1 = isq.apply %ssa_131(%ssa_131_in_1) : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:21)
                    %ssa_131_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:21)
                    affine.store %ssa_131_out_1, %ssa_134[%ssa_131_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:21)
                    %ssa_138 = arith.constant 2 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:40)
                    %ssa_139 = memref.subview %ssa_24[%ssa_138][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:39)
                    %ssa_136 = isq.use @"std.X" : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:33) 
                    %ssa_136_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:33)
                    %ssa_136_in_1 = affine.load %ssa_139[%ssa_136_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:33)
                    %ssa_136_out_1 = isq.apply %ssa_136(%ssa_136_in_1) : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:33)
                    %ssa_136_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:33)
                    affine.store %ssa_136_out_1, %ssa_139[%ssa_136_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":14:33)
                    %ssa_143 = arith.constant 0 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:16)
                    %ssa_144 = memref.subview %ssa_24[%ssa_143][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:15)
                    %ssa_141 = isq.use @"std.H" : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:9) 
                    %ssa_141_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:9)
                    %ssa_141_in_1 = affine.load %ssa_144[%ssa_141_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:9)
                    %ssa_141_out_1 = isq.apply %ssa_141(%ssa_141_in_1) : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:9)
                    %ssa_141_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:9)
                    affine.store %ssa_141_out_1, %ssa_144[%ssa_141_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:9)
                    %ssa_148 = arith.constant 1 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:28)
                    %ssa_149 = memref.subview %ssa_24[%ssa_148][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:27)
                    %ssa_146 = isq.use @"std.H" : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:21) 
                    %ssa_146_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:21)
                    %ssa_146_in_1 = affine.load %ssa_149[%ssa_146_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:21)
                    %ssa_146_out_1 = isq.apply %ssa_146(%ssa_146_in_1) : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:21)
                    %ssa_146_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:21)
                    affine.store %ssa_146_out_1, %ssa_149[%ssa_146_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:21)
                    %ssa_153 = arith.constant 2 : index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:40)
                    %ssa_154 = memref.subview %ssa_24[%ssa_153][1][1] : memref<3x!isq.qstate> to memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:39)
                    %ssa_151 = isq.use @"std.H" : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:33) 
                    %ssa_151_in_1_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:33)
                    %ssa_151_in_1 = affine.load %ssa_154[%ssa_151_in_1_load_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:33)
                    %ssa_151_out_1 = isq.apply %ssa_151(%ssa_151_in_1) : !isq.gate<1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:33)
                    %ssa_151_out_1_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:33)
                    affine.store %ssa_151_out_1, %ssa_154[%ssa_151_out_1_store_zero] : memref<1x!isq.qstate, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":15:33)
                    cf.br ^exit 
                ^exit:
                    scf.yield loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:18)
                } loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:18)
                %ssa_156_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:18)
                %ssa_156 = affine.load %ssa_31[%ssa_156_load_zero] : memref<1xi1, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:18)
                cf.cond_br %ssa_156, ^exit_2, ^block1 loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:18)
            ^block1:
                cf.br ^exit_2 
            ^exit_2:
                isq.accumulate_gphase %ssa_33_real : memref<1xi1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:18)
                memref.dealloc %ssa_33_real : memref<1xi1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:18)
                cf.br ^exit_1 
            ^exit_1:
                isq.accumulate_gphase %ssa_31_real : memref<1xi1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:5)
                memref.dealloc %ssa_31_real : memref<1xi1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:5)
                cf.br ^exit 
            ^exit:
                scf.yield loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:5)
            } loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:5)
        } loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:5)
        %ssa_158_load_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:5)
        %ssa_158 = affine.load %ssa_22[%ssa_158_load_zero] : memref<1xi1, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:5)
        cf.cond_br %ssa_158, ^exit_3, ^block1 loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":5:5)
    ^block1:
        cf.br ^exit_3 
    ^exit_3:
        isq.accumulate_gphase %ssa_24 : memref<3x!isq.qstate> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":4:5)
        memref.dealloc %ssa_24 : memref<3x!isq.qstate> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":4:5)
        cf.br ^exit_2 
    ^exit_2:
        isq.accumulate_gphase %ssa_23 : memref<10x!isq.qstate> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":3:5)
        memref.dealloc %ssa_23 : memref<10x!isq.qstate> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":3:5)
        cf.br ^exit_1 
    ^exit_1:
        isq.accumulate_gphase %ssa_22_real : memref<1xi1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":2:1)
        memref.dealloc %ssa_22_real : memref<1xi1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":2:1)
        cf.br ^exit 
    ^exit:
        return loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":2:1)
    } loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":2:1)
    func.func @"__isq__main"(memref<?xindex>, memref<?xf64>) 
    {
    ^entry(%ssa_160: memref<?xindex>, %ssa_161: memref<?xf64>):
        %ssa_162 = arith.constant 0 : i1 loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":18:1)
        %ssa_163_real = memref.alloc() : memref<1xi1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":18:1)
        %ssa_163_zero = arith.constant 0 : index
        %ssa_163 = memref.subview %ssa_163_real[%ssa_163_zero][1][1] : memref<1xi1> to memref<1xi1, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":18:1)
        %ssa_162_store_zero = arith.constant 0: index loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":18:1)
        affine.store %ssa_162, %ssa_163[%ssa_162_store_zero] : memref<1xi1, affine_map<(d0)[s0]->(d0+s0)>> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":18:1)
        cf.br ^exit_1 
    ^exit_1:
        isq.accumulate_gphase %ssa_163_real : memref<1xi1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":18:1)
        memref.dealloc %ssa_163_real : memref<1xi1> loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":18:1)
        cf.br ^exit 
    ^exit:
        return loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":18:1)
    } loc("/home/gjz010/isQ-Compiler/examples/grover_3.isq":18:1)
    func.func private @"__quantum__qis__rz__body"(f64, !isq.qir.qubit) loc("/home/gjz010/isQ-Compiler/lib/std.isq":0:1)
    isq.defgate @"Rz"(f64) {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__rz__body">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":0:1)
    isq.defgate @"std.Rz"(f64) {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__rz__body">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":0:1)
    func.func private @"__quantum__qis__rx__body"(f64, !isq.qir.qubit) loc("/home/gjz010/isQ-Compiler/lib/std.isq":1:1)
    isq.defgate @"Rx"(f64) {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__rx__body">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":1:1)
    isq.defgate @"std.Rx"(f64) {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__rx__body">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":1:1)
    func.func private @"__quantum__qis__ry__body"(f64, !isq.qir.qubit) loc("/home/gjz010/isQ-Compiler/lib/std.isq":2:1)
    isq.defgate @"Ry"(f64) {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__ry__body">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":2:1)
    isq.defgate @"std.Ry"(f64) {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__ry__body">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":2:1)
    func.func private @"__quantum__qis__u3"(f64, f64, f64, !isq.qir.qubit) loc("/home/gjz010/isQ-Compiler/lib/std.isq":3:1)
    isq.defgate @"U3"(f64, f64, f64) {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__u3">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":3:1)
    isq.defgate @"std.U3"(f64, f64, f64) {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__u3">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":3:1)
    func.func private @"__quantum__qis__h__body"(!isq.qir.qubit) loc("/home/gjz010/isQ-Compiler/lib/std.isq":4:1)
    isq.defgate @"H" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__h__body">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":4:1)
    isq.defgate @"std.H" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__h__body">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":4:1)
    func.func private @"__quantum__qis__s__body"(!isq.qir.qubit) loc("/home/gjz010/isQ-Compiler/lib/std.isq":5:1)
    isq.defgate @"S" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__s__body">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":5:1)
    isq.defgate @"std.S" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__s__body">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":5:1)
    func.func private @"__quantum__qis__t__body"(!isq.qir.qubit) loc("/home/gjz010/isQ-Compiler/lib/std.isq":6:1)
    isq.defgate @"T" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__t__body">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":6:1)
    isq.defgate @"std.T" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__t__body">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":6:1)
    func.func private @"__quantum__qis__x__body"(!isq.qir.qubit) loc("/home/gjz010/isQ-Compiler/lib/std.isq":7:1)
    isq.defgate @"X" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__x__body">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":7:1)
    isq.defgate @"std.X" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__x__body">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":7:1)
    func.func private @"__quantum__qis__y__body"(!isq.qir.qubit) loc("/home/gjz010/isQ-Compiler/lib/std.isq":8:1)
    isq.defgate @"Y" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__y__body">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":8:1)
    isq.defgate @"std.Y" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__y__body">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":8:1)
    func.func private @"__quantum__qis__z__body"(!isq.qir.qubit) loc("/home/gjz010/isQ-Compiler/lib/std.isq":9:1)
    isq.defgate @"Z" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__z__body">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":9:1)
    isq.defgate @"std.Z" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__z__body">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":9:1)
    func.func private @"__quantum__qis__cnot"(!isq.qir.qubit, !isq.qir.qubit) loc("/home/gjz010/isQ-Compiler/lib/std.isq":10:1)
    isq.defgate @"CNOT" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__cnot">]}: !isq.gate<2> loc("/home/gjz010/isQ-Compiler/lib/std.isq":10:1)
    isq.defgate @"std.CNOT" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__cnot">]}: !isq.gate<2> loc("/home/gjz010/isQ-Compiler/lib/std.isq":10:1)
    func.func private @"__quantum__qis__toffoli"(!isq.qir.qubit, !isq.qir.qubit, !isq.qir.qubit) loc("/home/gjz010/isQ-Compiler/lib/std.isq":11:1)
    isq.defgate @"Toffoli" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__toffoli">]}: !isq.gate<3> loc("/home/gjz010/isQ-Compiler/lib/std.isq":11:1)
    isq.defgate @"std.Toffoli" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__toffoli">]}: !isq.gate<3> loc("/home/gjz010/isQ-Compiler/lib/std.isq":11:1)
    func.func private @"__quantum__qis__x2m"(!isq.qir.qubit) loc("/home/gjz010/isQ-Compiler/lib/std.isq":12:1)
    isq.defgate @"X2M" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__x2m">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":12:1)
    isq.defgate @"std.X2M" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__x2m">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":12:1)
    func.func private @"__quantum__qis__x2p"(!isq.qir.qubit) loc("/home/gjz010/isQ-Compiler/lib/std.isq":13:1)
    isq.defgate @"X2P" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__x2p">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":13:1)
    isq.defgate @"std.X2P" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__x2p">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":13:1)
    func.func private @"__quantum__qis__y2m"(!isq.qir.qubit) loc("/home/gjz010/isQ-Compiler/lib/std.isq":14:1)
    isq.defgate @"Y2M" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__y2m">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":14:1)
    isq.defgate @"std.Y2M" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__y2m">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":14:1)
    func.func private @"__quantum__qis__y2p"(!isq.qir.qubit) loc("/home/gjz010/isQ-Compiler/lib/std.isq":15:1)
    isq.defgate @"Y2P" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__y2p">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":15:1)
    isq.defgate @"std.Y2P" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__y2p">]}: !isq.gate<1> loc("/home/gjz010/isQ-Compiler/lib/std.isq":15:1)
    func.func private @"__quantum__qis__cz"(!isq.qir.qubit, !isq.qir.qubit) loc("/home/gjz010/isQ-Compiler/lib/std.isq":16:1)
    isq.defgate @"CZ" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__cz">]}: !isq.gate<2> loc("/home/gjz010/isQ-Compiler/lib/std.isq":16:1)
    isq.defgate @"std.CZ" {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__cz">]}: !isq.gate<2> loc("/home/gjz010/isQ-Compiler/lib/std.isq":16:1)
    func.func private @"__quantum__qis__gphase"(f64) loc("/home/gjz010/isQ-Compiler/lib/std.isq":17:1)
    isq.defgate @"GPhase"(f64) {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__gphase">]}: !isq.gate<0> loc("/home/gjz010/isQ-Compiler/lib/std.isq":17:1)
    isq.defgate @"std.GPhase"(f64) {definition = [#isq.gatedef<type = "qir", value = @"__quantum__qis__gphase">]}: !isq.gate<0> loc("/home/gjz010/isQ-Compiler/lib/std.isq":17:1)
    func.func @"__isq__global_initialize"() 
    {
    ^block1:
        return 
    } 
    func.func @"__isq__global_finalize"() 
    {
    ^block1:
        return 
    } 
    func.func @"__isq__entry"(memref<?xindex>, memref<?xf64>) 
    {
    ^block1(%ssa_1: memref<?xindex>, %ssa_2: memref<?xf64>):
        func.call @"__isq__global_initialize"() : ()->() 
        func.call @"__isq__main"(%ssa_1, %ssa_2) : (memref<?xindex>, memref<?xf64>)->() 
        func.call @"__isq__global_finalize"() : ()->() 
        return 
    } 
}
